課程名稱 |
物件導向程式設計 OBJECT-ORIENTED SOFTWARE DESIGN |
開課學期 |
97-2 |
授課對象 |
資訊工程學系 |
授課教師 |
陳俊良 |
課號 |
CSIE1211 |
課程識別碼 |
902 10730 |
班次 |
01 |
學分 |
3 |
全/半年 |
半年 |
必/選修 |
必帶 |
上課時間 |
星期一2,3,4(9:10~12:10) |
上課地點 |
資102 |
備註 |
限學號單號 且 限本系所學生(含輔系、雙修生) 總人數上限:98人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/972oop |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
如何成為一個程式設計師 (programmer)?第一、要懂語言 (language);第二、要懂程式 (program)。語言指的是語法、功能等等。比如,C語言if敘述的條件要用小括號括起來,就是語法。C語言的 * 和 & 有很多效果,就是功能。程式指的是程式設計師用語言表達出來的軟體。如何成為一個好的程式設計師?除了上述之外,還要會構思軟體。
早先的程式語言以及軟體構思方法大概都是程序導向 (procedure-oriented) 的,比如C語言。後期才有物件導向 (object-oriented) 的概念。比較新的語言,比如Java和C#,都是歸屬於物件導向。過去的經驗證明物件導向的觀念與作法易於開發維護大型軟體。
物件導向的概念並不是說非得用物件導向語言來表達。假如我們喜歡,是可以用物件導向的概念來構思一個軟體系統,然後用程序導向的語言實作出來,只不過將會很累。那麼物件導向語言有何特點?其特點為,當我們利用物件導向語言來撰寫程式時,容易表達出一些大家認同的物件導向大概念,比如抽象 (abstraction)、封裝 (encapsulation)、繼承 (inheritance)、多型 (polymorphism) 等。當我們利用物件導向語言來表達程式的意圖時,因為物件導向語言的文法等規範,會驅使我們寫出隱含物件導向概念的軟體。
本課程目的在於讓修課同學理解物件導向的概念,熟悉物件導向語言,以建立將來撰寫大型物件導向程式的基礎。 |
課程目標 |
本課程的目標在於讓修課同學:
* 理解物件導向的概念,比如抽象、封裝、繼承、多型等。
* 熟悉一個物件導向語言的語法和功能。本課程以Java語言為主。
* 有能力利用物件導向語言表達出物件導向的概念。比如利用Java語言的關鍵字extends表達出繼承的概念。
* 有能力遵循物件導向概念構思一個小規模的程式,進而有能力利用物件導向語言實作該程式。
* 有能力翻閱物件導向語言的API,進而有能力引用API來協助物件導向程式的開發。 |
課程要求 |
|
預期每週課後學習時數 |
|
Office Hours |
每週一 12:00~13:00 每週一 08:00~09:00 |
指定閱讀 |
|
參考書目 |
* K. Sierra and B. Bates, Head First Java, 2nd Ed., O’Reilly, 2005.
* K. Arnold, J. Gosling and D. Holmes, The Java Programming Language, 4th Ed.,
Addison-Wesley, 2006.
* P. Wang, Java with Object Oriented Programming, 2nd Ed., Brooks/Cole, 2002. |
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
期中考 |
33% |
* 項目與百分比暫訂,教師保留更改之權利。
* 01, 02 兩班之作業及考試將依進度分頭舉行,至期末再由授課教師對兩班成績進行正規化調整。 |
2. |
期末考 |
33% |
|
3. |
作業 |
34% |
|
|
|